package com.kt.bit.bidw.bizmeta.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.kt.bit.bidw.bizmeta.dao.BizMetaInfoDao;
import com.kt.bit.bidw.common.persistence.impl.KTBIDWTeraDaoImpl;
import com.kt.bit.bidw.meta.util.PagingInfoUtil;

/**
 * 비즈니스메타 정보 관리 DAO class
 * <br/><b>History</b><br/>
 * <pre>
 * 2012. 5. 4. 최초작성
 * </pre>
 * @author cjsxowls
 * @version 1.0
 */
@Repository(value = "bizMetaInfoDao")
public class BizMetaInfoDaoImpl  extends KTBIDWTeraDaoImpl  implements BizMetaInfoDao {  // NOPMD by Administrator on 12. 12. 11 오후 5:16
	@Override
	public Class getClazz() {
		return BizMetaInfoDaoImpl.class;
	}
	
	/**
	 * 비즈니스메타 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 비즈니스메타 목록
	 */
	@Override
	public List<Map<String, Object>> bizObjBasList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizObjBasList", data);
	}
	
	/**
	 * 비즈니스메타 요청 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 비즈니스메타 요청 목록
	 */
	@Override
	public List<Map<String, Object>> bizObjReqList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizObjReqList", data);
	}
	
	/**
	 * BI정보검색 검색Key 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 비즈니스메타 검색Key 목록
	 */
	@Override
	public List<Map<String, Object>> atribSearchKeyListByTypeId(final Map<String, Object> data) {
		return (List<Map<String, Object>>)selectList("bizmeta.atribSearchKeyListByTypeId", data);
	}
	
	/**
	 * BI정보검색 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List BI정보검색 객체유형별  목록
	 */
	@Override
	public List<Map<String, Object>> bizPotalSearchList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizPotalSearchList", data);
	}
	
	/**
	 * BI정보검색 기본 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List BI정보검색 객체유형별  목록
	 */
	@Override
	public List<Map<String, Object>> bizPotalSearchDefaultList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizPotalSearchDefaultList", data);
	}
	
	/**
	 * BI정보검색 검색결과 Paging 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List BI정보검색 결과Paging 목록
	 */
	@Override
	public PagingInfoUtil bizPotalSearchListPageInfo(final Map<String, Object> data) {
		return (PagingInfoUtil) selectOne("bizmeta.bizPotalSearchListPageInfo", data);
	}
	
	/**
	 * 관점객체 관점멤버 스키마 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 관점객체 관점멤버 스키마테이블 조회 목록
	 */
	@Override
	public List<Map<String, Object>> bizViewObjData(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizViewObjData", data);
	}
	
	/**
	 * 관점객체 관점멤버 어트리뷰트 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 관점객체 관점멤버 어트리뷰트 목록
	 */
	@Override
	public List<Map<String, Object>> objViewMemberList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.objViewMemberList", data);
	}
	
	/**
	 * 관점객체 관점멤버 스키마 컬럼정보 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 관점객체 관점멤버 스키마 컬럼정보 목록
	 */
	@Override
	public List<Map<String, Object>> objViewMemberColumnList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.objViewMemberColumnList", data);	
	}
	
	/**
	 * 비즈니스메타 조직도 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 조직도 목록
	 */
	@Override
	public List<Map<String, Object>> bizOrgList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizOrgList", data);	
	}
	
	/**
	 * 비즈니스메타 요청자 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 비즈니스메타 요청자 목록
	 */
	@Override
	public List<Map<String, Object>> bizRqtUserList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizRqtUserList", data);	
	}
	
	/**
	 * 비즈니스메타 관리자 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 비즈니스메타 관리자 목록
	 */
	@Override
	public List<Map<String, Object>> bizOwnerList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizOwnerList", data);	
	}
	
	/**
	 * 정형리포트 실행을 위한 리스트 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List 프로젝트 리스트 목록
	 */
	@Override
	public List<Map<String, Object>> bizPotalProjectRptList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizPotalProjectRptList", data);	
	}
	
	/**
	 * Biz Meta Mstr Mapping 리스트 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List<Map<String, Object>>
	 */
	@Override
	public List<Map<String, Object>> bizMstrMappingList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizMstrMappingList", data);	
	}
	
	/**
	 * BI 정보 맵 리스트 조회 쿼리 수행<br>
	 * @param param 조회조건
	 * @return List<Map<String, Object>>
	 */
	@Override
	public List<Map<String, Object>> bizPotalSearchTreeList(final Map<String, Object> data) {
		return (List<Map<String, Object>>) selectList("bizmeta.bizPotalSearchTreeList", data);	
	}
}
